(function() {
var rNum = 0,
symbLimit = 50,
_w = window,
_d = _w.document,
beforetext = null,
targetText = null,
aftertext = null,
messHeader = '',
stats = '',
mess = '',
emailPattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
if (document.addEventListener) {
document.addEventListener('keydown', ReorphusCall, true);
} else if (document.attachEvent) {
document.attachEvent('onkeydown', ReorphusCall);
}
function Reorp_gen() {
var x = Math.ceil(Math.random() * 15),
y = Math.ceil(Math.random() * 15);
$('#reorp_spam').parents('.text');
$('#reorphus #antispam').text(x + ' + ' + y);
rNum = x + y;
};
function Reorp_pos() {
$('.reorphus').css({
'top': $(_w).height()/2 - $('#reorphus').height()/2 + 'px'
});
}
function Reorp_butt_close(e) {
if (e.keyCode == 27) {
$('#reorphus, #reorphus_message').remove();
if (document.addEventListener) {
document.addEventListener('keydown', ReorphusCall, true);
document.removeEventListener('keydown', Reorp_sbmt, true);
} else if (document.attachEvent) {
document.attachEvent('onkeydown', ReorphusCall);
document.detachEvent('onkeydown', Reorp_sbmt);
}
return false;
}
}
function Reorp_mess(messHeader, stats, mess) {
var html_after = '' +
'
' +
'
' + messHeader + '
' +
'
' +
'
' +
'';
$('body').prepend(html_after).delay(200).show('fast');
Reorp_pos();
}
function Reorp_sbmt(e) {
if ((e.shiftKey == true) && (e.keyCode == 13)) {
$('#reorphus_form').submit();
}
}
function Reorp_validate() {
if ($('#reorp_spam').val() == rNum && $('#reorp_comment').val()) {
$.cookie('reorphus_valid_user', '1', { expires: 365, path: '/' });
return true;
} else if ($.cookie('reorphus_valid_user') == '1' && $('#reorp_comment').val()) {
return true;
} else {
return false;
}
}
var Reorp_getText = function() {
var targetText = null;
var textString = null;
if (_w.getSelection) {
textString = _w.getSelection();
} else {
if (_d.getSelection) {
textString = _d.getSelection();
} else {
textString = _d.selection;
}
}
if (textString != null) {
var pre = "",
targetText = null,
suf = "";
if (textString.getRangeAt) {
var r = textString.getRangeAt(0);
targetText = r.toString();
var pfx = _d.createRange();
pfx.setStartBefore(r.startContainer.ownerDocument.body);
pfx.setEnd(r.startContainer, r.startOffset);
pre = pfx.toString();
var sfx = r.cloneRange();
sfx.setStart(r.endContainer, r.endOffset);
sfx.setEndAfter(r.endContainer.ownerDocument.body);
suf = sfx.toString();
} else {
if (textString.createRange) {
var r = textString.createRange();
targetText = r.text;
var pfx = textString.createRange();
pfx.moveStart("character", - symbLimit);
pfx.moveEnd("character", - targetText.length);
pre = pfx.text;
var sfx = textString.createRange();
sfx.moveEnd("character", symbLimit);
sfx.moveStart("character", targetText.length);
suf = sfx.text;
} else {
targetText = "" + textString;
}
}
var p;
var s = (p = targetText.match(/^(\s*)/)) && p[0].length;
var e = (p = targetText.match(/(\s*)$/)) && p[0].length;
pre = pre + targetText.substring(0, s);
suf = targetText.substring(targetText.length - e, targetText.length) + suf;
beforetext = pre.substring(pre.length - symbLimit, pre.length).replace(/^\S{1,10}\s+/, "");
text = targetText.substring(s, targetText.length - e);
aftertext = suf.substring(0, symbLimit).replace(/\s+\S{1,10}$/, "");
} else {
alert('Ой, что-то пошло не так :(');
return;
}
};
function ReorphusCall(e) {
if ((e.shiftKey == true) && (e.keyCode == 13)) {
if ($('#reorphus').length == 0) {
Reorp_getText();
if (text.length > 2 && text.length < 200) {
if (document.addEventListener) {
document.removeEventListener('keydown', ReorphusCall, true);
document.addEventListener('keydown', Reorp_butt_close, true);
document.addEventListener('keydown', Reorp_sbmt, true);
} else if (document.attachEvent) {
document.detachEvent('onkeydown', ReorphusCall);
document.attachEvent('onkeydown', Reorp_butt_close);
document.attachEvent('onkeydown', Reorp_sbmt);
}
var html = '' +
'' +
'
Нашли ошибку? Спасибо за бдительность!
' +
'
' +
'
'+
'';
$('body').prepend(html);
Reorp_gen();
Reorp_pos();
if ($.cookie('reorphus_valid_user') == '1') {
$('#reorp_spam').parents('.text').remove();
$('#reorp_spam_descr').remove();
}
$('#reorphus input[type=text], #reorphus textarea').on('focus', function(){
$(this).parents('.text').addClass('focused').removeClass('error');
}).on('blur', function(){
$(this).parents('.text').removeClass('focused');
});
$('#reorp_comment').focus();
$('#reopr_close, #reorp_top_close').on('click', function(){
$('#reorphus').remove();
$('#reorphus input:text, #reorphus textarea').val('');
if (document.addEventListener) {
document.addEventListener('keydown', ReorphusCall, true);
document.removeEventListener('keydown', Reorp_sbmt, true);
} else if (document.attachEvent) {
document.attachEvent('onkeydown', ReorphusCall);
document.detachEvent('onkeydown', Reorp_sbmt);
}
return false;
});
$('#reorp_spam').keypress(function(key){
if (key.charCode < 48 || key.charCode > 57) {
return false;
}
});
$('#reorphus_form').on('submit', function(e){
if (Reorp_validate()) {
$("#reorp_quote_dup").val($("#reorp_quote").html().replace('', '<!!!>').replace('', '<!!!>'));
$("#reorp_url").val(window.location.href);
$("#reorp_browser").val(navigator.userAgent);
$('#reorp_submit').val('').addClass('disabled').attr('disabled', 'disabled');
$('#reorphus .text').removeClass('error');
e.preventDefault();
var data = $(this).serialize();
var t_form = $(this);
var res = $.ajax({
url: '/cgi/reorphus_send.pl',
type: 'POST',
data: data,
dataType: 'json'
});
res.done(function(jdata) {
if (!jdata.status) {
alert(jdata.alert);
if (jdata.activate_field) {
$('#'+jdata.activate_field.focus());
}
} else {
$("#reorphus").fadeOut('fast', function(){ $(this).remove() });
Reorp_mess('Сообщение отправлено', 'ok', jdata.message);
if (document.addEventListener) {
document.addEventListener('keydown', ReorphusCall, true);
document.removeEventListener('keydown', Reorp_sbmt, true);
} else if (document.attachEvent) {
document.attachEvent('onkeydown', ReorphusCall);
document.detachEvent('onkeydown', Reorp_sbmt);
}
}
});
res.fail(function(jqXHR, textStatus) {
$("#reorphus").fadeOut('fast', function(){ $(this).remove() });
Reorp_mess('Ошибка', 'error', 'Ошибка: ' + textStatus);
});
$(document).on('click', '#reopr_after_close', function(){
$('#reorphus_message').fadeOut('fast', function() { $(this).remove() });
return false;
});
$(document).on('click', '#reorp_mess_top_close', function(){
$('#reorphus_message').remove();
return false;
});
} else {
$('#reorp_spam').val('').parents('.text').addClass('error');
$('#reorp_comment').parents('.text').addClass('error');
Reorp_gen();
return false;
};
});
};
if (text.length < 2) {
alert('Вы выделили слишком мало текста.');
return false;
};
if (text.length > 200) {
alert('Вы выделили слишком много текста.')
return false;
};
};
};
}; //ReorphusCall();
}());